import globals from 'globals'
import pluginJs from '@eslint/js'
import tseslint from 'typescript-eslint'
import pluginVue from 'eslint-plugin-vue'

export default [
    { files: ['**/*.{js,mjs,cjs,ts,vue}'] },
    { languageOptions: { globals: globals.browser } },
    pluginJs.configs.recommended,
    ...tseslint.configs.recommended,
    ...pluginVue.configs['flat/essential'],
    {
        files: ['**/*.vue'],
        languageOptions: {
            parserOptions: { parser: tseslint.parser },
            globals: { NodeJS: 'readonly' }
        }
    },
    {
        rules: {
            '@typescript-eslint/ban-ts-comment': 'off',
            'no-empty': ['error', { allowEmptyCatch: true }],
            'vue/multi-word-component-names': 'off',
            '@typescript-eslint/no-explicit-any': 'off',
            '@typescript-eslint/no-unused-vars': [
                'error',
                {
                    caughtErrorsIgnorePattern: '^_',
                    argsIgnorePattern: '^_'
                }
            ]
        }
    }
]
